Beamforming is a commonly used technique in the downlink of advanced cellular systems such as 3G Long-Term Evolution (3G LTE) and Worldwide Interoperability for Microwave Access (WiMAX) systems. Beamforming uses coordinated transmissions across multiple transmit antennas at a base-station in order to direct a signal towards the intended receiver, typically a mobile receiver. The use of beamforming with a narrow beam helps to ensure that the signal strength at the mobile receiver is high, while at the same time ensures that interference caused to receivers at other locations within a particular cell is kept to a minimum.
Setting the coefficients of a beamformer requires channel knowledge at the base station. Specifically, the channel is measured at the receiver and measurements are fed back to the base station over the uplink. Feeding back the entire channel measurement typically requires too much overhead, so in practical systems the receiver generally measures the downlink channel and then selects a beamforming or ‘precoding’ vector p from a finite set of precoding vectors ψ={p1, . . . , pN} known as a codebook. This codebook is typically designed offline and is known to both the base station and the receiver. As a result the receiver only needs to feed back the index of the selected precoding vector, thus significantly reducing feedback overhead.
Consider, as shown in FIG. 1, a cell with two receivers, Receiver a and Receiver b and an associated base station. The channel row vector from the base station to Receiver a is denoted as ha, where the nth element contains the channel from the nth transmit antenna at the base station to the receiver's antenna. Note that in general there may be multiple antennas at the mobile receiver in which case ha and pa will be matrices. Similarly, denote hb as the channel row vector from the base station to Receiver b. If precoding is applied, the signal transmitted by the base station will be as follows:x=paxa+pbxb,where pa and pb denote the precoding column vectors of Receivers a and b, and xa and xb denote the signals intended for Receivers a and b respectively. The signal received by Receiver a is then as follows:ya=hapaxa+hapbxb+za which leads to a signal to interference plus noise ratio (SINR) as follows:
            SINR      a        =                                                                                  h                a                            ⁢                              p                a                                                          2                ⁢                  S          x                                                                                                                h                  a                                ⁢                                  p                  1                                                                    2                    ⁢                      S            x                          +                  S          z                      ,
Ideally one would like to choose the precoding vector for Receiver a, pa to be parallel to ha so that the signal power at Receiver a is maximized. At the same time, one would like pa to be orthogonal to hb such that the interference caused to Receiver b is minimized.
Unfortunately, when Receivers a and b are in close vicinity to one another, ha≈hb and it becomes difficult to find a precoding vector that satisfies both criteria. Seen another way, the codebook which contains the set of available precoding vectors may not have a fine enough granularity in angular space to allow the signals intended for the two receivers to be adequately separated. For example, consider transmission with a 4 element (2-bit) codebook as shown in FIG. 2.
In this case one can either transmit to Receiver a using p1, which will cause severe interference to Receiver b, or transmit to Receiver a using p2, which will decrease the interference to Receiver b, but will also cause Receiver a to receive an extremely weak signal since it is located far outside of the main lobe of p2.
One solution to this problem is to increase the codebook size, as diagrammatically indicated in FIG. 3, thereby increasing the number of beams and achieving a finer granularity in angular space. This allows the receivers to be adequately separated, but unfortunately this approach requires a higher feedback overhead and increases the complexity of precoding vector selection at the receiver.